home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_08_11 / 8n11009a < prev    next >
Text File  |  1990-10-10  |  1KB  |  50 lines

  1.  
  2. /* ctype.h standard header
  3.  * copyright (c) 1990 by P.J. Plauger
  4.  */
  5. #ifndef _CTYPE
  6. #define _CTYPE
  7.  
  8. /* _Ctype code bits */
  9.  
  10. #define _XA 0x200 /* extra alphabetic */
  11. #define _XS 0x100 /* extra space */
  12. #define _BB 0x80 /* BEL, BS, etc. */
  13. #define _CN 0x40 /* CR, FF, HT, NL, VT */
  14. #define _DI 0x20 /* '0'-'9' */
  15. #define _LO 0x10 /* 'a'-'z' */
  16. #define _PU 0x08 /* punctuation */
  17. #define _SP 0x04 /* space */
  18. #define _UP 0x02 /* 'A'-'Z' */
  19. #define _XD 0x01 /* '0'-'9', 'A'-'F', 'a'-'f' */
  20.  
  21. int isalnum(int), isalpha(int), iscntrl(int);
  22. int isdigit(int), isgraph(int), islower(int);
  23. int isprint(int), ispunct(int), isspace(int);
  24. int isupper(int), isxdigit(int);
  25. int tolower(int), toupper(int);
  26.  
  27. extern const short *_Ctype, *_Tolower, *_Toupper;
  28.  
  29. #define isalnum(c) \
  30.     (_Ctype[(int)(c)] & (_DI|_LO|_UP|_XA))
  31. #define isalpha(c) \
  32.     (_Ctype[(int)(c)] & (_LO|_UP|_XA))
  33. #define iscntrl(c) (_Ctype[(int)(c)] & (_BB|_CN))
  34. #define isdigit(c) (_Ctype[(int)(c)] & _DI)
  35. #define isgraph(c) \
  36.     (_Ctype[(int)(c)] & (_DI|_LO|_PU|_UP|_XA))
  37. #define islower(c) (_Ctype[(int)(c)] & _LO)
  38. #define isprint(c) \
  39.     (_Ctype[(int)(c)] & (_DI|_LO|_PU|_SP|_UP|_XA))
  40. #define ispunct(c) (_Ctype[(int)(c)] & _PU)
  41. #define isspace(c) \
  42.     (_Ctype[(int)(c)] & (_CN|_SP|_XS))
  43. #define isupper(c) (_Ctype[(int)(c)] & _UP)
  44. #define isxdigit(c) (_Ctype[(int)(c)] & _XD)
  45. #define tolower(c) (_Tolower[(int)(c)]
  46. #define toupper(c) (_Toupper[(int)(c)]
  47.  
  48. #endif
  49.  
  50.